home *** CD-ROM | disk | FTP | other *** search
/ Komputer for Alle: Internet utan modem / Internet CD.iso / web / computer / wwweps~1.com / adam / garbage.dcr / Internal_4_puzzle piece.ls < prev    next >
Encoding:
Text File  |  1997-03-17  |  2.5 KB  |  117 lines

  1. property h_pos, v_pos, mycast, mysprite, state, base_cast
  2.  
  3. on new me, h, v, mc, ms
  4.   set h_pos to h
  5.   set v_pos to v
  6.   set mycast to mc
  7.   set base_cast to mycast
  8.   set mysprite to ms
  9.   set state to 0
  10.   return me
  11. end
  12.  
  13. on update_me me
  14.   global board_list
  15.   if me = 0 then
  16.     return 
  17.   end if
  18.   set t to getPos(board_list, me)
  19.   set h_pos to ((t - 1) mod 4 * 70) + 46
  20.   set v_pos to ((t - 1) / 4 * 70) + 41
  21.   set the loc of sprite mysprite to point(h_pos, v_pos)
  22. end
  23.  
  24. on change_state me
  25.   if me = 0 then
  26.     return 
  27.   end if
  28.   set state to state + 1
  29.   if state = 3 then
  30.     set state to 0
  31.   end if
  32.   set mycast to base_cast + (state * 20)
  33.   set the castNum of sprite mysprite to mycast
  34.   update_me(me)
  35. end
  36.  
  37. on move_me me, h, v
  38.   global board_list
  39.   if me = 0 then
  40.     return 
  41.   end if
  42.   set t to getPos(board_list, me)
  43.   if h < 3 then
  44.     if getAt(board_list, h + (v * 4) + 1 + 1) = 0 then
  45.       setAt(board_list, h + (v * 4) + 1 + 1, me)
  46.       setAt(board_list, t, 0)
  47.       move_right(me)
  48.       return 
  49.     end if
  50.   end if
  51.   if h > 0 then
  52.     if getAt(board_list, h + (v * 4) + 1 - 1) = 0 then
  53.       setAt(board_list, h + (v * 4) + 1 - 1, me)
  54.       setAt(board_list, t, 0)
  55.       move_left(me)
  56.       return 
  57.     end if
  58.   end if
  59.   if v > 0 then
  60.     if getAt(board_list, h + ((v - 1) * 4) + 1) = 0 then
  61.       setAt(board_list, h + ((v - 1) * 4) + 1, me)
  62.       setAt(board_list, t, 0)
  63.       move_up(me)
  64.       return 
  65.     end if
  66.   end if
  67.   if v < 3 then
  68.     if getAt(board_list, h + ((v + 1) * 4) + 1) = 0 then
  69.       setAt(board_list, h + ((v + 1) * 4) + 1, me)
  70.       setAt(board_list, t, 0)
  71.       move_down(me)
  72.       return 
  73.     end if
  74.   end if
  75.   puppetSound(1, "wrong")
  76. end
  77.  
  78. on move_down me
  79.   puppetSound(1, "whoosh1")
  80.   repeat with n = 1 to 35
  81.     set the locV of sprite mysprite to the locV of sprite mysprite + 2
  82.     updateStage()
  83.   end repeat
  84.   set v_pos to v_pos + 70
  85.   check_if_right()
  86. end
  87.  
  88. on move_up me
  89.   puppetSound(1, "whoosh1")
  90.   repeat with n = 1 to 35
  91.     set the locV of sprite mysprite to the locV of sprite mysprite - 2
  92.     updateStage()
  93.   end repeat
  94.   set v_pos to v_pos - 70
  95.   check_if_right()
  96. end
  97.  
  98. on move_left me
  99.   puppetSound(1, "whoosh1")
  100.   repeat with n = 1 to 35
  101.     set the locH of sprite mysprite to the locH of sprite mysprite - 2
  102.     updateStage()
  103.   end repeat
  104.   set v_pos to h_pos - 70
  105.   check_if_right()
  106. end
  107.  
  108. on move_right me
  109.   puppetSound(1, "whoosh1")
  110.   repeat with n = 1 to 35
  111.     set the locH of sprite mysprite to the locH of sprite mysprite + 2
  112.     updateStage()
  113.   end repeat
  114.   set v_pos to h_pos + 70
  115.   check_if_right()
  116. end
  117.